package com.jlcloud.core.tenant.constant;

/**
 * 租户动态数据源常量.
 *
 * @author By: JlCloud <br>
 * @Package: com.jlcloud <br>
 * @CreateTime: 2024-12-03 21:45 <br>
 * @Copyright: 2021 www.jilianjituan.com Inc. All rights reserved. <br>
 * @Caution 注意：本内容仅限于冀联人力集团内部传阅，禁止外泄以及用于其他的商业目的 <br>
 */
public interface TenantDynamicConstant extends TenantBaseConstant{

	/**
	 * 租户动态数据源键
	 */
	String TENANT_DYNAMIC_DATASOURCE_PROP = "jlcloud.tenant.dynamic-datasource";

	/**
	 * 租户全局动态数据源切面键
	 */
	String TENANT_DYNAMIC_GLOBAL_PROP = "jlcloud.tenant.dynamic-global";

	/**
	 * 租户是否存在数据源
	 */
	String TENANT_DATASOURCE_EXIST_STATEMENT = "select datasource_id from jlcloud_tenant WHERE is_deleted = 0 AND tenant_id = ?";

	/**
	 * 租户数据源基础SQL
	 */
	String TENANT_DATASOURCE_BASE_STATEMENT = "SELECT category, tenant_id as tenantId, driver_class as driverClass, url, username, password, sharding_config as shardingConfig from jlcloud_tenant tenant LEFT JOIN jlcloud_tenant_datasource datasource ON tenant.datasource_id = datasource.id ";

	/**
	 * 租户单数据源SQL
	 */
	String TENANT_DATASOURCE_SINGLE_STATEMENT = TENANT_DATASOURCE_BASE_STATEMENT + "WHERE tenant.is_deleted = 0 AND tenant.tenant_id = ?";

	/**
	 * 租户集动态数据源SQL
	 */
	String TENANT_DATASOURCE_GROUP_STATEMENT = TENANT_DATASOURCE_BASE_STATEMENT + "WHERE tenant.is_deleted = 0";

	/**
	 * 租户未找到返回信息
	 */
	String TENANT_DATASOURCE_NOT_FOUND = "未找到租户信息,数据源加载失败!";

	/**
	 * oracle驱动类
	 */
	String ORACLE_DRIVER_CLASS = "oracle.jdbc.OracleDriver";

	/**
	 * oracle校验
	 */
	String ORACLE_VALIDATE_STATEMENT = "select 1 from dual";

	/**
	 * 通用校验
	 */
	String COMMON_VALIDATE_STATEMENT = "select 1";

	/**
	 * jdbc数据源分类
	 */
	int JDBC_CATEGORY = 1;

	/**
	 * sharding数据源分类
	 */
	int SHARDING_CATEGORY = 2;

}
